package com.jin.crud.service;

import com.github.pagehelper.PageInfo;
import com.jin.crud.bean.QueryDto;
import com.jin.crud.bean.QueryUser;
import com.jin.crud.bean.SysUser;

import java.util.Map;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author yuxuejin
 * @since 2021-11-16
 */
public interface SysUserService {

    /**
     * 分页查询
     */
    PageInfo<SysUser> getAllPage(QueryDto queryDto);

    /**
     * 通过ID查找用户
     */
    SysUser getUser(String userId);

    /**
     * 新增用户
     */
    void addUser(SysUser user);

    /**
     * 修改用户
     */
    void updateUser(SysUser user);

    /**
     * 删除用户
     */
    void delUser(String userId);

    /**
     * 修改账户状态
     */
    void updateUserStatus(String userId, String status);

    /**
     * 校验用户是否允许操作
     */
    void checkUserAllowed(String userId);

    /**
     * 重置密码
     */
    void resetPwd(String userId);

    Map<String, Object> getAuthRole(String userId);

    void insertUserAuth(String userId, String[] roleIds);

    PageInfo<SysUser> selectAllocatedList(QueryUser param);

    PageInfo<SysUser> selectUnallocatedList(QueryUser param);

    SysUser selectUserByUserAccount(String userAccount);

    String selectUserRoleGroup(String userName);

    SysUser selectUserById(String userId);
}
